Exibi os números primos de um numero recebido pelo usuário, sem estrutura de repetição
Publicado por Edmar Wantuil (última atualização em 22/11/2011)
[ Hits: 2.235 ]
Homepage: wantuil.com
Escrevi esse código para testar os números primos <= de um numero recebido pelo usuário.
Economizado o máximo de processos possíveis e sem utilizar estrutura de repetição apenas recursividade.
/*
Feito por Edmar Wantuil Silva Júnior
Em 14 de novembro de 2011
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
//Função testa se é primo ele testa até encrontar um divisor o achando ele para o teste, pois já saberemos que ele é primo
int testa_primo(int numero, int divisor)
{
//Ira testar somente até a metade do numero pois sabemos que após a metade do nuemro so existe o proprio numero como divisor
if((numero / 2) < divisor)
return 0;
//Se achar qualquer divisor o teste irá parar pois o numero não é mais primo
if(numero % divisor == 0)
return 1;
else
return testa_primo(numero,divisor + 1);
}
//Essa função chama a função testa primo e retorna true caso primo
bool primo(numero)
{
//vamos passar o numero 2 como o primeiro divisor pois sabemos que todos os numeros são divisiveis assim se retornar 0 ele sera primo
if(testa_primo(numero,2) == 0)
return true;
else
return false;
}
//Essa função chama ela mesma até numero = cont
void primos(int numero, int cont)
{
if(primo(cont) == true)
printf("%d\n", cont);
if(numero > cont)
primos(numero, cont + 1);
return;
}
//Função principal
int main()
{
int numero= 0;
printf("Numero: ");
scanf("%d",&numero);
primos(numero, 1);
primo(numero);
return 0;
}
Ler N números e ver qual é o maior
Nenhum comentário foi encontrado.
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
O que houve com slackware ??? (12)
Alterar conteúdo de dica [RESOLVIDO] (3)
Vou destruir sua infância:) (5)









